
var api = (function () {
    var api = {};
    api.getShopList = getShopList;
    api.getDetail = getDetail;
    api.getSearch = getSearch;
    api.getTypeOne = getTypeOne;
    api.Register = Register;
    api.login = login;
    api.addShopcar  = addShopcar;

    /**
     * 获取商品列表接口
     * @param {Object} options 
     * @param {Function} success 
     */
    function getShopList(options, success) {
        REQUEST.get('/goodList', {
            params: options,
        }, function (data) {
            success(data);
        })
    }

    /**
     * 获取商品详情接口
     * @param {Object} options 请求参数
     * @param {Function} success  请求成功后处理函数
     */
    function getDetail(options, success) {
        REQUEST.get('/detail', {
            params: options,
        }, function (data) {
            success(data);
        })
    }

    /**
     * 获取一级分类标题接口
     * @param {Function} success 
     */
    function getTypeOne(success) {
        REQUEST.get('/getTypeone', {
            params: {},
        }, function (data) {
            success(data);
        })
    }

    /**
     * 检索商品列表
     * @param {Object} options 
     * @param {Function} success 
     */
    function getSearch(options, success) {
        // 为了验证因为书写错误，不容易排错
        //检验options中是否有word
        //obj.hasOwnProperty(key) 检验某个对象中是否存在某个属性，如果存在返回true，不存在返回false
        var result = options.hasOwnProperty("word");
        if (!result) {
            //throw 抛出错误信息，结束语句的作用
            //new Error 创建 错误实例
            throw new Error("option.word is request Params,but you do not have WORD 属性")
        }
        REQUEST.get('/search', {
            params: options,
        }, function (data) {
            success(data);
        })
    }

    /**
     * 获取注册接口
     * @param {Object} options 
     * @param {Function} success 
     */
    function Register(options, success) {
        var result = options.hasOwnProperty("username") && options.hasOwnProperty("password");
        if (!result) {
            throw new Error("你需要传入userName and passWord")
        }
        REQUEST.get('/register', {
            params: options,
        }, function (data) {
            success(data);
        })
    }

    /**
     * 获取登录接口
     * @param {Object} options 
     * @param {Function} success 
     */
    function login(options, success) {
        var result = options.hasOwnProperty("username") && options.hasOwnProperty("password");
        if (!result) {
            throw new Error("你需要传入userName and passWord")
        }
        REQUEST.get('/login', {
            params: options,
        }, function (data) {
            success(data);
        })
    }

    /**
     * 添加购物车
     * @param {Object} options
     * @param {Function} success
     */
    function addShopcar(options, success) {
        var res = options.hasOwnProperty('username') && options.hasOwnProperty('token') && options.hasOwnProperty('goodId')
        if (!res) {
            throw new Error('you meed to be username ande password and token')
        }
        REQUEST.get('/add', {
            params: options,
        }, function (data) {
            success(data);
        })

    }

    return api;
})();

